package cn.bocai.pc.util;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Map;

import org.springframework.stereotype.Component;

import freemarker.template.Configuration;
import freemarker.template.Template;
/** 
 * @className: FMutil
 * @description: freemarker模板工具类
 * @date: 2015年06月26日 下午6:20:31
 * @explain :
 * 
 * @修改人：
 * @修改时间：
 * @修改内容：
 */
@Component
public class FMutil {
	
	/**
	 * @param ftlName:模板的名字
	 * @param fileName:生成之后页面的名字
	 * @param map数据
	 * @throws Exception
	 */
	public void ouputFile(String ftlName, String fileName,  Map<String, Object> map,String relativePath,String PackPath,String HtmlPath) throws Exception{
		System.out.println("执行模板代码！"+ftlName);
		//创建fm的配置
		Configuration config = new Configuration();
		//指定默认编码格式
		config.setDefaultEncoding("UTF-8");
		//设置模板的包路径
		config.setClassForTemplateLoading(this.getClass(),PackPath);
		/*config.setClassForTemplateLoading(this.getClass(),File.separator+"ftl");*/
		//获得包的模板
		Template template = config.getTemplate(ftlName);
		//指定文件输出的路径   
		String path = HtmlPath+relativePath;
		
		//定义输出流，注意的必须指定编码
		Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(path+"/"+fileName)),"UTF-8"));
		//生成模板
		template.process(map, writer);
	}
	

	public void ouputLinkFile(String ftlName, String fileName,  Map<String, Object> map,String relativePath,String PackPath,String HtmlPath) throws Exception{
		System.out.println("执行静态页面生成模板代码！"+ftlName);
		//创建fm的配置
		Configuration config = new Configuration();
		//指定默认编码格式
		config.setDefaultEncoding("UTF-8");
		//设置模板的包路径
		config.setClassForTemplateLoading(this.getClass(),PackPath);
		/*config.setClassForTemplateLoading(this.getClass(),File.separator+"ftl");*/
		//获得包的模板
		Template template = config.getTemplate(ftlName);
		//指定文件输出的路径   
		String path = HtmlPath+relativePath;
		
		//定义输出流，注意的必须指定编码
		Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(path)),"UTF-8"));
		//生成模板
		template.process(map, writer);
	}
}
